08d58bf8076c17c691c575f9222caa0399268e8e,src/main/java/com/oneops/search/msg/processor/OpsProcMessageProcessor.java,OpsProcMessageProcessor,processOpsProcMsg,#CmsOpsProcedureSearch#,47

Before Change


						esProcedure.setRetryCount(esProcedure.getRetryCount()+1);
						esProcedure.setFailedEndTS(DateUtil.formatDate(new Date(), CmsConstants.SEARCH_TS_PATTERN));
						double failedDuration = esProcedure.getFailedDuration() +
								(((SearchUtil.getTimefromDate(esProcedure.getFailedEndTS())) - (SearchUtil.getTimefromDate(esProcedure.getFailedStartTS())))/1000.0);
						esProcedure.setFailedDuration(Math.round(failedDuration * 1000.0)/1000.0);
						esProcedure.setProcedureState(procedure.getProcedureState());
					}
				}
				else{
					procedure.setActiveStartTS(DateUtil.formatDate(new Date(), CmsConstants.SEARCH_TS_PATTERN));
				}
			}
			else if(OpsProcedureState.failed.getName().equalsIgnoreCase(procedure.getProcedureState().getName())){
				esProcedure.setFailureCnt(esProcedure.getFailureCnt() + 1);
				esProcedure.setFailedStartTS(DateUtil.formatDate(new Date(), CmsConstants.SEARCH_TS_PATTERN));
				if(OpsProcedureState.active.getName().equalsIgnoreCase(esProcedure.getProcedureState().getName())){
					esProcedure.setActiveEndTS(DateUtil.formatDate(new Date(), CmsConstants.SEARCH_TS_PATTERN));
					double activeDuration = esProcedure.getActiveDuration() +
							(((SearchUtil.getTimefromDate((esProcedure.getActiveEndTS()))) - (SearchUtil.getTimefromDate(esProcedure.getActiveStartTS()))) / 1000.0);
					esProcedure.setActiveDuration(Math.round(activeDuration * 1000.0)/1000.0);
				}
				esProcedure.setProcedureState(procedure.getProcedureState());

After Change


						esProcedure.setFailedEndTS(simpleDateFormat.format(new Date()));

						double failedDuration = esProcedure.getFailedDuration() +
								((((Long) simpleDateFormat.parse(esProcedure.getFailedEndTS()).getTime()) - ((Long) simpleDateFormat.parse(esProcedure.getFailedStartTS()).getTime()))/1000.0);
						esProcedure.setFailedDuration(Math.round(failedDuration * 1000.0)/1000.0);
						esProcedure.setProcedureState(procedure.getProcedureState());
					}
				}
				else{
					procedure.setActiveStartTS(simpleDateFormat.format(new Date()));
				}
			}
			else if(OpsProcedureState.failed.getName().equalsIgnoreCase(procedure.getProcedureState().getName())){
				esProcedure.setFailureCnt(esProcedure.getFailureCnt() + 1);
				esProcedure.setFailedStartTS(simpleDateFormat.format(new Date()));
				if(OpsProcedureState.active.getName().equalsIgnoreCase(esProcedure.getProcedureState().getName())){
					esProcedure.setActiveEndTS(simpleDateFormat.format(new Date()));

					double activeDuration = esProcedure.getActiveDuration() +
							((((Long) simpleDateFormat.parse((esProcedure.getActiveEndTS())).getTime()) - ((Long) simpleDateFormat.parse(esProcedure.getActiveStartTS()).getTime())) / 1000.0);
					esProcedure.setActiveDuration(Math.round(activeDuration * 1000.0)/1000.0);
				}
				esProcedure.setProcedureState(procedure.getProcedureState());